#ifndef __STEPMOTOR_H
#define __STEPMOTOR_H
#include "stm32f1xx_hal.h"

#define MOTOR_CLK RCC_APB2Periph_GPIOA

#define MOTOR_A GPIO_PIN_7
#define MOTOR_B GPIO_PIN_0
#define MOTOR_C GPIO_PIN_1
#define MOTOR_D GPIO_PIN_2
#define MOTOR_PROT GPIOB

#define MOTOR_A_HIGH HAL_GPIO_WritePin(GPIOA, MOTOR_A, GPIO_PIN_SET)
#define MOTOR_A_LOW HAL_GPIO_WritePin(GPIOA, MOTOR_A, GPIO_PIN_RESET)

#define MOTOR_B_HIGH HAL_GPIO_WritePin(MOTOR_PROT, MOTOR_B, GPIO_PIN_SET)
#define MOTOR_B_LOW HAL_GPIO_WritePin(MOTOR_PROT, MOTOR_B, GPIO_PIN_RESET)

#define MOTOR_C_HIGH HAL_GPIO_WritePin(MOTOR_PROT, MOTOR_C, GPIO_PIN_SET)
#define MOTOR_C_LOW HAL_GPIO_WritePin(MOTOR_PROT, MOTOR_C, GPIO_PIN_RESET)

#define MOTOR_D_HIGH HAL_GPIO_WritePin(MOTOR_PROT, MOTOR_D, GPIO_PIN_SET)
#define MOTOR_D_LOW HAL_GPIO_WritePin(MOTOR_PROT, MOTOR_D, GPIO_PIN_RESET)

/*********************END**********************/

void MOTOR_Init(void);
void MOTOR_Rhythm_4_1_4(uint8_t step, uint8_t dly);
void MOTOR_Direction(uint8_t dir, uint8_t num, uint8_t dly);
// 方向 节拍  角度 频率
void MOTOR_Direction_Angle(uint8_t dir, uint8_t num, uint16_t angle, uint8_t dly);
void MOTOR_STOP(void);
#endif
